shadow dirty-VRAM: avoid multiple remove_all_mappings calls.
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 26 Oct 2009 12:18:50 +0000 (12:18 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 26 Oct 2009 12:18:50 +0000 (12:18 +0000)
commit02a4e58f0b4a44b6b9ee2d02af1b99700d976fd8
tree3bea5d68864280cc307afa06083833230ee4b50b
parentdef87a2cbf0f4aacd6cd68d2c56ea58cc03a6b62
shadow dirty-VRAM: avoid multiple remove_all_mappings calls.

sh_remove_all_mappings() will walk roughly half of the shadow L1
tables for each MFN it's called with; calling it for every MFN in a
guest's framebuffer can be _very_ expensive, especially with the
shadow lock held across the whole operation.  Avoid that by just
blowing away all the shadows.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
xen/arch/x86/mm/shadow/common.c